/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package suministros.ejb30.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;

/**
 *
 * @author Luis_Angel
 */
@Entity
@Table(name = "DetalleOrden")
@NamedQueries({
    @NamedQuery(name = "DetalleOrden.findAll", query = "SELECT d FROM DetalleOrden d"),
    @NamedQuery(name = "DetalleOrden.findByNroOrden", query = "SELECT d FROM DetalleOrden d WHERE d.detalleOrdenPK.nroOrden = :nroOrden"),
    @NamedQuery(name = "DetalleOrden.findByCorrelativo", query = "SELECT d FROM DetalleOrden d WHERE d.detalleOrdenPK.correlativo = :correlativo"),
    @NamedQuery(name = "DetalleOrden.findByIDSuministro", query = "SELECT d FROM DetalleOrden d WHERE d.iDSuministro = :iDSuministro"),
    @NamedQuery(name = "DetalleOrden.findByCantidad", query = "SELECT d FROM DetalleOrden d WHERE d.cantidad = :cantidad"),
    @NamedQuery(name = "DetalleOrden.findByPrecioUnitario", query = "SELECT d FROM DetalleOrden d WHERE d.precioUnitario = :precioUnitario"),
    @NamedQuery(name = "DetalleOrden.findByCodPedido", query = "SELECT d FROM DetalleOrden d WHERE d.codPedido = :codPedido"),
    @NamedQuery(name = "DetalleOrden.findByIdZona", query = "SELECT d FROM DetalleOrden d WHERE d.idZona = :idZona"),
    @NamedQuery(name = "DetalleOrden.findByIdLocalidad", query = "SELECT d FROM DetalleOrden d WHERE d.idLocalidad = :idLocalidad"),
    @NamedQuery(name = "DetalleOrden.findByCantidadIngresada", query = "SELECT d FROM DetalleOrden d WHERE d.cantidadIngresada = :cantidadIngresada")})
public class DetalleOrden implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected DetalleOrdenPK detalleOrdenPK;
    @Column(name = "ID_Suministro")
    private String iDSuministro;
    @Column(name = "cantidad")
    private BigDecimal cantidad;
    @Column(name = "precio_unitario")
    private BigDecimal precioUnitario;
    @Column(name = "Cod_Pedido")
    private String codPedido;
    @Column(name = "id_zona")
    private String idZona;
    @Column(name = "id_localidad")
    private String idLocalidad;
    @Column(name = "cantidadIngresada")
    private BigDecimal cantidadIngresada;
    @Column(name = "Cod_CentroCosto")
    private String codCentroCosto;
    @Column(name = "cod_Uni_Organizativa")
    private String id_unidad_organica;
   @Column(name = "id_cod_presupuestal")
    private String idCodPresupuestal;
    @Column(name = "id_cod_inversion")
    private String idCodInversion;
    @Column(name = "id_cuenta_contable_inversion")
    private String idCuentaContableInversion;
    @Column(name = "id_proyecto")
    private String idproyecto;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "detalleOrden1")
    private DetalleOrden detalleOrden;
    @JoinColumns({
        @JoinColumn(name = "nro_orden", referencedColumnName = "nro_orden", insertable = false, updatable = false),
        @JoinColumn(name = "correlativo", referencedColumnName = "correlativo", insertable = false, updatable = false)})
    @OneToOne(optional = false)
    private DetalleOrden detalleOrden1;
    @JoinColumn(name = "nro_orden", referencedColumnName = "nro_orden", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Orden orden;
    @Column(name = "cta_cble")
    private String cta_cble;
    @Column(name = "cta_cble_aux")
    private String cta_cble_aux;

    @Column(name = "sub_total")
    private BigDecimal sub_total;


    public DetalleOrden() {
    }

    public DetalleOrden(DetalleOrdenPK detalleOrdenPK) {
        this.detalleOrdenPK = detalleOrdenPK;
    }

    public BigDecimal getSub_total() {
        return sub_total;
    }

    public void setSub_total(BigDecimal sub_total) {
        this.sub_total = sub_total;
    }

    
    public String getCta_cble() {
        return cta_cble;
    }

    public void setCta_cble(String cta_cble) {
        this.cta_cble = cta_cble;
    }

    public String getCta_cble_aux() {
        return cta_cble_aux;
    }

    public void setCta_cble_aux(String cta_cble_aux) {
        this.cta_cble_aux = cta_cble_aux;
    }

    
    public DetalleOrden(String nroOrden, int correlativo) {
        this.detalleOrdenPK = new DetalleOrdenPK(nroOrden, correlativo);
    }


    public String getIdproyecto() {
        return idproyecto;
    }

    public void setIdproyecto(String idproyecto) {
        this.idproyecto = idproyecto;
    }

    public DetalleOrdenPK getDetalleOrdenPK() {
        return detalleOrdenPK;
    }

    public void setDetalleOrdenPK(DetalleOrdenPK detalleOrdenPK) {
        this.detalleOrdenPK = detalleOrdenPK;
    }

    public String getIDSuministro() {
        return iDSuministro;
    }

    public void setIDSuministro(String iDSuministro) {
        this.iDSuministro = iDSuministro;
    }

    public BigDecimal getCantidad() {
        return cantidad;
    }

    public void setCantidad(BigDecimal cantidad) {
        this.cantidad = cantidad;
    }

    public BigDecimal getPrecioUnitario() {
        return precioUnitario;
    }

    public void setPrecioUnitario(BigDecimal precioUnitario) {
        this.precioUnitario = precioUnitario;
    }

    public String getCodPedido() {
        return codPedido;
    }

    public void setCodPedido(String codPedido) {
        this.codPedido = codPedido;
    }

    public String getIdZona() {
        return idZona;
    }

    public void setIdZona(String idZona) {
        this.idZona = idZona;
    }

    public String getIdLocalidad() {
        return idLocalidad;
    }

    public void setIdLocalidad(String idLocalidad) {
        this.idLocalidad = idLocalidad;
    }

    public BigDecimal getCantidadIngresada() {
        return cantidadIngresada;
    }

    public void setCantidadIngresada(BigDecimal cantidadIngresada) {
        this.cantidadIngresada = cantidadIngresada;
    }

    public String getCodCentroCosto() {
        return codCentroCosto;
    }

    public void setCodCentroCosto(String codCentroCosto) {
        this.codCentroCosto = codCentroCosto;
    }

    public String getIdCodPresupuestal() {
        return idCodPresupuestal;
    }

    public void setIdCodPresupuestal(String idCodPresupuestal) {
        this.idCodPresupuestal = idCodPresupuestal;
    }

    public String getIdCodInversion() {
        return idCodInversion;
    }

    public void setIdCodInversion(String idCodInversion) {
        this.idCodInversion = idCodInversion;
    }

    public String getIdCuentaContableInversion() {
        return idCuentaContableInversion;
    }

    public void setIdCuentaContableInversion(String idCuentaContableInversion) {
        this.idCuentaContableInversion = idCuentaContableInversion;
    }

    public DetalleOrden getDetalleOrden() {
        return detalleOrden;
    }

    public void setDetalleOrden(DetalleOrden detalleOrden) {
        this.detalleOrden = detalleOrden;
    }

    public DetalleOrden getDetalleOrden1() {
        return detalleOrden1;
    }

    public void setDetalleOrden1(DetalleOrden detalleOrden1) {
        this.detalleOrden1 = detalleOrden1;
    }

    public Orden getOrden() {
        return orden;
    }

    public void setOrden(Orden orden) {
        this.orden = orden;
    }

    public String getId_unidad_organica() {
        return id_unidad_organica;
    }

    public void setId_unidad_organica(String id_unidad_organica) {
        this.id_unidad_organica = id_unidad_organica;
    }

    

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (detalleOrdenPK != null ? detalleOrdenPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {

        if (!(object instanceof DetalleOrden)) {
            return false;
        }
        DetalleOrden other = (DetalleOrden) object;
        if ((this.detalleOrdenPK == null && other.detalleOrdenPK != null) || (this.detalleOrdenPK != null && !this.detalleOrdenPK.equals(other.detalleOrdenPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.DetalleOrden[detalleOrdenPK=" + detalleOrdenPK + "]";
    }

}
